package com.xjc.business.service;

import com.xjc.business.entity.domain.SchoolSets;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xjc.business.entity.po.schadmin.ActiveSchoolPo;
import com.xjc.business.entity.vo.SetVo2;
import com.xjc.business.entity.vo.SetVo3;
import com.xjc.system.result.Result;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
* @author root
* @description 针对表【school_sets(学校套餐信息)】的数据库操作Service
* @createDate 2025-01-25 10:24:32
*/
public interface SchoolSetsService extends IService<SchoolSets> {

    /**
     * 开通服务
     * @param activeSchoolPo 学校和套餐信息
     * @return 反馈
     */
    Result<String> activeSchool(ActiveSchoolPo activeSchoolPo);

    /**
     * 查询套餐信息
     * @param id 学校id
     * @return 信息
     */
    Result<SetVo2> getSetInfo(Integer id);

    /**
     * 获取套餐历史开通信息
     * @param id 学校id
     * @return 信息
     */
    Result<List<SetVo3>> getSchoolSetsHistoryList(Integer id);

    /**
     * 异步支付结果反馈
     * @return success or failure
     */
    void notifyBack(HttpServletRequest request, HttpServletResponse response);

    /**
     * 同步支付结果反馈
     */
    String returnBack(HttpServletRequest request);

    /**
     * 获取未支付订单
     * @param id 学校id
     * @return 订单id
     */
    Result<Integer> queryNotPayOrder(Integer id);

    /**
     * 删除未支付订单
     * @param id 订单id
     * @return 反馈
     */
    Result<String> deleteNotPayOrder(Integer id);

    /**
     * 继续支付
     * @param id 订单id
     * @return 反馈
     */
    String continuePay(Integer id);

    /**
     * 确认所属学校是否开通套餐
     * @param role 角色类型
     * @param id id
     * @return 反馈
     */
    boolean sureHasSet(String role,Integer id);
}
